package com.denlaku.longan.dao;

import java.util.List;

import com.denlaku.longan.anno.VarOp;
import com.denlaku.longan.qo.DataOriginQuery;
import com.denlaku.longan.qo.Query;
import com.denlaku.longan.vo.DataOrigin;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * @author tianx
 */
@Repository
public interface DataOriginDao {
	/**
	 * 新增数据源
	 * @param dataOrigin 数据源
	 * @return 新增记录数
	 */
	@VarOp
	int add(DataOrigin dataOrigin);

	/**
	 * 更新数据源
	 * @param dataOrigin 数据源
	 * @return 更新记录数
	 */
	@VarOp
	int update(DataOrigin dataOrigin);

	/**
	 * 删除数据源
	 * @param query 查询参数
	 * @return 删除记录数
	 */
	int delete(Query query);

	/**
	 * 查询数据源
	 * @param query 查询参数
	 * @return 数据源列表
	 */
	List<DataOrigin> list(DataOriginQuery query);

	/**
	 * 获取数据源
	 * @param query 查询参数
	 * @return 数据源
	 */
	DataOrigin get(Query query);

	/**
	 * 获取数据源密码
	 * @param query 查询参数
	 * @return pwd
	 */
	String getPassword(Query query);

	/**
	 * 清理tag
	 *
	 * @param tenantId 租户ID
	 * @param tagId 标签ID
	 */
	void clearTag(@Param("tenantId") Long tenantId, @Param("tagId") Long tagId);
}
